package cn.italkcloud.cph.config.sys;

/**
 * 返回结果枚举
 *
 * @author null
 * @since 2021/11/25
 */
public enum ResponseCode {

    /**
     * code: 200
     * 请求成功
     */
    SUCCESS(200, "请求成功", true),


    /**
     * code:400
     * 异常
     */
    ERROR(400, "异常", false),

    /**
     * code：402
     * 登录状态异常
     */
    LOGIN_STATUS_ERROR(402, "登录状态异常", false),

    /**
     * code：403
     * 参数错误
     */
    HAS_WRONG_PARAM(403, "参数错误", false),

    /**
     * code：404
     * 资源不存在
     */
    SOURCE_NOT_FOUND(404, "资源不存在", false),

    /**
     * code：405
     * 需要输入验证码
     * 为了防止撞库，登陆失败都使用 登录标识不存在 返回，在超过次数后需要提供验证码后登陆
     */
    NEED_VERIFY_CODE(405, "该账号需要输入验证码", false),

    /**
     * code：405
     * 验证码错误
     */
    ERROR_VERIFY_CODE(405, "验证码错误", false),

    /**
     * code：406
     * 账号或密码错误
     */
    LOGIN_SIGN_REFUSED(406, "账号或密码错误", false),

    /**
     * code：407
     * 身份状态错误
     */
    IDENTITY_STATE_WRONG(407, "身份状态错误", false),

    /**
     * code :408
     * 无效 Token
     */
    INVALID_TOKEN(408, "无效 Token", false),


    /**
     * code :410
     * 冲突
     */
    CONFLICT(410, "冲突", false),

    /**
     * code:411
     * 资源不唯一
     */
    NON_UNIQUENESS(411, "资源不唯一", false),

    /**
     * code：412
     * 无权限
     */
    NO_PERMISSION(412, "该账号没有相关权限", false),

    /**
     * code:500
     * 请求失败
     */
    FAILED(500, "请求失败", false),

    SERVER_ERROR(500, "请求参数可能异常，请确认后重试", false);

    private final int code;
    private final String msg;
    private final boolean success;


    ResponseCode(int code, String desc, boolean success) {
        this.code = code;
        this.msg = desc;
        this.success = success;
    }

    public int getCode() {
        return code;
    }

    public String getCodeStr() {
        return String.valueOf(code);
    }

    public String getMsg() {
        return msg;
    }

    public boolean isSuccess() {
        return success;
    }
}
